import request from '@/config/axios'

// 列表查询时，接口返回的数据
export interface SkuVO {
  id: string
  spuId: string
  skuName: string
  originalPrice: number
  price: number
  picUrl: string
  stock: number
  warnStockLimit: number
  status: number
  createTime: number
  updateTime: number
  creator: string
  updater: string
  payNote?: string
}

// 查询时的参数类型
export type SkuQueryDTO = {
  spuId?: string
  spuType?: number // 根据 spuId 关联 spu 表取得 spu.spuType 字段来进行过滤
  skuName?: string // 模糊查询
}

export type SkuCreateDTO = Omit<SkuVO, 'id' | 'createTime' | 'updateTime' | 'creator' | 'updater'>

export type SkuUpdateDTO = Pick<SkuVO, 'id'> &
  Partial<Omit<SkuVO, 'id' | 'createTime' | 'updateTime' | 'creator' | 'updater'>>

const baseURL = '/train/product-sku'

// 查询列表
export const getPage = async (params: PageParam & SkuQueryDTO) => {
  return await request.get({ url: `${baseURL}/page`, params })
}

// 查询详情
export const get = (id: string) => request.get({ url: `${baseURL}/get?id=` + id })

// 新增
export const create = (data: SkuCreateDTO) => request.post({ url: `${baseURL}/create`, data })

// 修改
export const update = (data: SkuUpdateDTO) => request.post({ url: `${baseURL}/update`, data })

// 删除
export const del = (id: string) => request.delete({ url: `${baseURL}/delete`, params: { id } })
